package com.iaz.tech.tools.uml.structural.classstruct.impl;

import java.lang.reflect.Type;

import com.iaz.tech.tools.property.IPropertyAble;

import lombok.Data;

/**
 * 基础类
 */
@Data
public abstract class NeuronProgramStruct implements IPropertyAble {
    private String name;

    /**
     * 路径
     */
    private String path;
    /**
     * 类型
     */
    private Type typeSelf;

    @Override
    public String path() {
        return this.path;
    }

    @Override
    public void push(String key, Object _value) { 
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public void push(String key, IPropertyAble property) { 
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public void push(String path, String key, Object _value) { 
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public void push(String path, String key, IPropertyAble property) {  
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public void push(Object _value) { 
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public void push(IPropertyAble property) {         
        throw new UnsupportedOperationException("Unimplemented method 'push'");
    }

    @Override
    public Type dataType() {
        return this.typeSelf;
    }

}
